class Mes::Modeler::Resource
  def initialize(controller_path, controller_name, parent_model, object_name = nil)
    @controller_path = controller_path
    @controller_name = controller_name
    @parent_model = parent_model
    @object_name = object_name
  end

  def sub_namespace_parts
    @controller_path.split('/')[2..-2]
  end

  def model_class
    sub_namespace = sub_namespace_parts.map(&:capitalize).join('::')
    sub_namespace = "#{sub_namespace}::" if sub_namespace.length > 0
    "Mes::#{sub_namespace}#{@controller_name.classify}".constantize
  end

  def model_name
    sub_namespace = sub_namespace_parts.join('/')
    sub_namespace = "#{sub_namespace}/" if sub_namespace.length > 0
    @parent_model.gsub("mes/#{sub_namespace}", '')
  end

  def object_name
    return @object_name if @object_name
    sub_namespace = sub_namespace_parts.join('_')
    sub_namespace = "#{sub_namespace}_" if sub_namespace.length > 0
    "#{sub_namespace}#{@controller_name.singularize}"
  end
end
